﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace _2._12._2015_SmartPhone.Models
{
    public abstract class SmartPhone
    {
        public Boolean HasGPS { get; set; }
        public Boolean MakeCall { get; set; }
        public AssistantType Assistant { get; private set; } 

        public SmartPhone(AssistantType type)
        {
            this.Assistant = type;
        }
        
        public SmartPhone()
        {

        }
    }

    public class iPhone : SmartPhone
    {
        public string SaphireVendor { get; set; }
        public iPhone() :base(AssistantType.Siri)
        {
            
        }
    }

    public class Andriod : SmartPhone
    {
        public string FavoriteWidget { get; set; }
        public Andriod() :base(AssistantType.GoogleNow)
        {
            
        }
    }

    public class WindowsPhone : SmartPhone
    {
        public int NumberofTiles { get; set; }
        public WindowsPhone() :base(AssistantType.Cortana)
        {
          
        }
    }

    public enum AssistantType
    {
        Siri,
        Cortana,
        GoogleNow
    }

    public class IndexViewModel
    {
        public List<SmartPhone> SmartPhones { get; set; } 
    }

    public class CreateViewModel
    {
        public Boolean HasGPS { get; set; }
        public Boolean MakeCall { get; set; }

        public int NumberOfTiles { get; set; }
    }
}